Importaçoes

In [1]:
import pandas as pd 
import seaborn as sns 
import numpy as np 
import matplotlib.pyplot as plt 
from sklearn.pipeline import Pipeline
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import RobustScaler, OneHotEncoder
from sklearn.tree import DecisionTreeRegressor
from sklearn.ensemble import AdaBoostRegressor, RandomForestRegressor
from sklearn.linear_model import LinearRegression, Ridge, Lasso
from sklearn.neural_network import MLPRegressor
from sklearn.svm import SVR
from sklearn.model_selection import cross_val_score
from sklearn.decomposition import PCA
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score, mean_absolute_percentage_error

import torch 
from torch import nn, optim
from torch.utils.data import Dataset, DataLoader
from torch.optim.lr_scheduler import StepLR

import warnings
warnings.filterwarnings('ignore')
In [2]:
df = pd.read_csv('C:\\Users\\souza\\Downloads\\Projeto 2 -revisão de produtividade de funcionários\\garments_worker_productivity.csv')
df
Out[2]:
date quarter department day team targeted_productivity smv wip over_time incentive idle_time idle_men no_of_style_change no_of_workers actual_productivity
0 1/1/2015 Quarter1 sweing Thursday 8 0.80 26.16 1108.0 7080 98 0.0 0 0 59.0 0.940725
1 1/1/2015 Quarter1 finishing Thursday 1 0.75 3.94 NaN 960 0 0.0 0 0 8.0 0.886500
2 1/1/2015 Quarter1 sweing Thursday 11 0.80 11.41 968.0 3660 50 0.0 0 0 30.5 0.800570
3 1/1/2015 Quarter1 sweing Thursday 12 0.80 11.41 968.0 3660 50 0.0 0 0 30.5 0.800570
4 1/1/2015 Quarter1 sweing Thursday 6 0.80 25.90 1170.0 1920 50 0.0 0 0 56.0 0.800382
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
1192 3/11/2015 Quarter2 finishing Wednesday 10 0.75 2.90 NaN 960 0 0.0 0 0 8.0 0.628333
1193 3/11/2015 Quarter2 finishing Wednesday 8 0.70 3.90 NaN 960 0 0.0 0 0 8.0 0.625625
1194 3/11/2015 Quarter2 finishing Wednesday 7 0.65 3.90 NaN 960 0 0.0 0 0 8.0 0.625625
1195 3/11/2015 Quarter2 finishing Wednesday 9 0.75 2.90 NaN 1800 0 0.0 0 0 15.0 0.505889
1196 3/11/2015 Quarter2 finishing Wednesday 6 0.70 2.90 NaN 720 0 0.0 0 0 6.0 0.394722

1197 rows × 15 columns

Estatistica descritiva

In [3]:
df.describe()
Out[3]:
team targeted_productivity smv wip over_time incentive idle_time idle_men no_of_style_change no_of_workers actual_productivity
count 1197.000000 1197.000000 1197.000000 691.000000 1197.000000 1197.000000 1197.000000 1197.000000 1197.000000 1197.000000 1197.000000
mean 6.426901 0.729632 15.062172 1190.465991 4567.460317 38.210526 0.730159 0.369256 0.150376 34.609858 0.735091
std 3.463963 0.097891 10.943219 1837.455001 3348.823563 160.182643 12.709757 3.268987 0.427848 22.197687 0.174488
min 1.000000 0.070000 2.900000 7.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.000000 0.233705
25% 3.000000 0.700000 3.940000 774.500000 1440.000000 0.000000 0.000000 0.000000 0.000000 9.000000 0.650307
50% 6.000000 0.750000 15.260000 1039.000000 3960.000000 0.000000 0.000000 0.000000 0.000000 34.000000 0.773333
75% 9.000000 0.800000 24.260000 1252.500000 6960.000000 50.000000 0.000000 0.000000 0.000000 57.000000 0.850253
max 12.000000 0.800000 54.560000 23122.000000 25920.000000 3600.000000 300.000000 45.000000 2.000000 89.000000 1.120437
In [4]:
df.isnull().sum()
Out[4]:
date                       0
quarter                    0
department                 0
day                        0
team                       0
targeted_productivity      0
smv                        0
wip                      506
over_time                  0
incentive                  0
idle_time                  0
idle_men                   0
no_of_style_change         0
no_of_workers              0
actual_productivity        0
dtype: int64
In [5]:
#substituiçao de dados nulos pela mediana 
df['wip'] = df['wip'].interpolate(method='linear', limit_direction='forward')
In [6]:
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1197 entries, 0 to 1196
Data columns (total 15 columns):
 #   Column                 Non-Null Count  Dtype  
---  ------                 --------------  -----  
 0   date                   1197 non-null   object 
 1   quarter                1197 non-null   object 
 2   department             1197 non-null   object 
 3   day                    1197 non-null   object 
 4   team                   1197 non-null   int64  
 5   targeted_productivity  1197 non-null   float64
 6   smv                    1197 non-null   float64
 7   wip                    1197 non-null   float64
 8   over_time              1197 non-null   int64  
 9   incentive              1197 non-null   int64  
 10  idle_time              1197 non-null   float64
 11  idle_men               1197 non-null   int64  
 12  no_of_style_change     1197 non-null   int64  
 13  no_of_workers          1197 non-null   float64
 14  actual_productivity    1197 non-null   float64
dtypes: float64(6), int64(5), object(4)
memory usage: 140.4+ KB
In [7]:
df['department'].value_counts()
Out[7]:
department
sweing        691
finishing     257
finishing     249
Name: count, dtype: int64
In [8]:
df['quarter'].value_counts()
Out[8]:
quarter
Quarter1    360
Quarter2    335
Quarter4    248
Quarter3    210
Quarter5     44
Name: count, dtype: int64
In [9]:
df['date'] = pd.to_datetime(df['date'])

EDA

Analise Univariada

In [10]:
#separaçao dados numericos e dados categoricos 
num_col = df.select_dtypes(exclude=['object', 'datetime64[ns]'])
cat_col = df.select_dtypes(exclude=['number', 'datetime64[ns]']).columns
In [11]:
#distribuiçao dados categoricos
fig, axes = plt.subplots(3, 4, figsize=(15, 12))
axes = axes.flatten()
for i, cat in enumerate(cat_col):
    sns.countplot(data=df, x=cat, ax=axes[i], palette='pastel')
    axes[i].set_title(f'Gráfico {cat}')
    axes[i].tick_params(axis='x', rotation=90)
for j in range(len(cat_col), 12):
    axes[j].set_visible(False)
plt.tight_layout()
plt.show()
No description has been provided for this image
In [12]:
#distribuiçao dados numericos
fig, axes = plt.subplots(3, 4, figsize=(15, 12))
axes = axes.flatten()
for i, num in enumerate(num_col):
    sns.histplot(df[num], kde=True, ax=axes[i], palette='pastel')
    axes[i].set_title(f'grafico {num}')
for j in range(len(num_col), 9):
    axes[j].set_visible(False)
plt.tight_layout()
plt.show()
No description has been provided for this image
In [13]:
#vizualizaçao em caixa colunas numericas 
fig, axes = plt.subplots(3, 4, figsize=(15, 12))
axes = axes.flatten()
for i, num in enumerate(num_col):
    sns.boxplot(df[num], ax=axes[i], palette='pastel')
    axes[i].set_title(f'grafico {num}')
for j in range(len(num_col), 9):
    axes[j].set_visible(False)
plt.tight_layout()
plt.subplots_adjust(top=1.5)
plt.show()
No description has been provided for this image
In [14]:
fig, axes = plt.subplots(3, 4, figsize=(15, 12))
axes = axes.flatten()
for i, num in enumerate(num_col):
    sns.violinplot(df[num], ax=axes[i], palette='pastel')
    axes[i].set_title(f'grafico {num}')
for j in range(len(num_col), 9):
    axes[j].set_visible(False)
plt.tight_layout()
plt.show()
No description has been provided for this image

Analise Bivariada

In [15]:
#plot colunas cat x produtividade 
fig, axes = plt.subplots(3, 4, figsize=(15, 12))
axes = axes.flatten()
for i, cat in enumerate(cat_col):
    sns.boxplot(x=df[cat], y = df['actual_productivity'], ax=axes[i], palette='pastel')
    axes[i].set_title(f'grafico {cat} x produtividade')
    axes[i].tick_params(axis='x', rotation=90)
for j in range(len(cat_col), 12):
    axes[j].set_visible(False)
plt.tight_layout()
plt.show()
No description has been provided for this image
In [16]:
df.columns
Out[16]:
Index(['date', 'quarter', 'department', 'day', 'team', 'targeted_productivity',
       'smv', 'wip', 'over_time', 'incentive', 'idle_time', 'idle_men',
       'no_of_style_change', 'no_of_workers', 'actual_productivity'],
      dtype='object')
In [17]:
#plot incentive x actual_productivity
df_dt = df[df.date <= pd.to_datetime('2015-03-08')]
plt.figure(figsize=(10,5))
plt.title('produtividade por incentivo')
line1 = sns.lineplot(x='date', y='actual_productivity', data=df_dt, ci= None, color='orange', legend=False, label = 'actual productivity' )
ax2 = line1.twinx()
line2 = sns.lineplot(x='date', y='incentive', data=df_dt, ci= None, color='darkgreen',ax=ax2, legend=False, label = 'incentive')
line1.figure.legend()
Out[17]:
<matplotlib.legend.Legend at 0x26d8567f610>
No description has been provided for this image
In [18]:
#analise temporal actual_productivity x targeted_productivity 
plt.figure(figsize=(10,5))
plt.title(' actual_productivity x targeted_productivity ')
sns.lineplot(data=df,x='date', y='actual_productivity', color='orange',label='actual')
sns.lineplot(data=df,x='date', y='targeted_productivity', color='green', label='target')
plt.legend()
plt.show()
No description has been provided for this image
In [19]:
#tempo de fabricaçao de peças por equipes 
plt.figure(figsize=(10,5))
plt.title('tempo de fabricaçao de peças por equipe')
sns.barplot(data=df, x='team', y='smv', palette='pastel')
plt.show()
No description has been provided for this image
In [20]:
#items nao finalizados por equipes
plt.figure(figsize=(10,5))
plt.title('items nao finalizados por equipes')
sns.barplot(x=df['team'], y= df['wip'], palette='pastel')
plt.show()
No description has been provided for this image
In [21]:
#tempo maquina parada por equipe 
plt.figure(figsize=(10,5))
plt.title('tempo maquinas paradas por equipes')
sns.barplot(x=df['team'], y=df['idle_time'], palette='pastel') 
plt.show()
No description has been provided for this image
In [22]:
#tempo trabalhadores parados por equipes 
plt.figure(figsize=(10,5))
plt.title('tempo trabalhadores parados por equipes')
sns.barplot(x=df['team'], y=df['idle_men'], palette='pastel')
plt.show()
No description has been provided for this image
In [23]:
#aqui selecionei algumas features que podem ter relaçao linear com a produtividade
#por exemplo:relacao temo para produzir uma peça x produtividade 
some_features = ['smv', 'targeted_productivity', 'wip', 'over_time', 'incentive', 'idle_time', 'idle_men', 'no_of_workers'
    
]
In [24]:
#plotagem das features x produtividade
for i, prod in enumerate(some_features):
    plt.figure()
    plt.title(f'relaçao entre produtividade e {prod}')
    sns.scatterplot(data=df, x=prod, y='actual_productivity', palette='pastel')
plt.tight_layout()
plt.show()
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
In [25]:
plt.figure(figsize=(10,5))
plt.title('relaçao horas extras trabalhadas x tempo padrao de produçao')
sns.scatterplot(x=df['smv'], y= df['over_time'])
plt.show()
No description has been provided for this image
In [26]:
#data x produtividade x departamento
plt.figure(figsize=(10,5))
plt.title('produtividade x departamento')
sns.lineplot(data=df, x='date', y='actual_productivity', hue='department')
plt.legend()
plt.show()
No description has been provided for this image

Analise Multivariada

In [27]:
fig, axes = plt.subplots(3, 4, figsize=(15, 12))
axes = axes.flatten()
for i, num in enumerate(num_col):
    sns.violinplot(y=df[num], ax=axes[i], palette='pastel', hue=df['department'])
    axes[i].set_title(f'grafico {num}')
for j in range(len(num_col), 9):
    axes[j].set_visible(False)
plt.tight_layout()
plt.legend()
plt.show()
No description has been provided for this image
In [28]:
#analise time que recebeu maior incentivo x produtividae
plt.figure(figsize=(10,5))
plt.title('time que recebeu maior incentivo x produtividade')
sns.scatterplot(data=df, x='actual_productivity', y='incentive', hue='team', palette='bright')
plt.show()
No description has been provided for this image
In [29]:
#matriz de correlaçao entre variaveis 
plt.figure(figsize=(10,5))
plt.title('matriz de correlaçao')
sns.heatmap(num_col.corr(),annot=True, cmap='coolwarm', fmt='.2f', linewidths=0.5, cbar=True)
plt.show()
No description has been provided for this image

Criaçao de novas features

In [30]:
df.columns
Out[30]:
Index(['date', 'quarter', 'department', 'day', 'team', 'targeted_productivity',
       'smv', 'wip', 'over_time', 'incentive', 'idle_time', 'idle_men',
       'no_of_style_change', 'no_of_workers', 'actual_productivity'],
      dtype='object')
In [31]:
#criaçao de novas features
df['prod_per_worker'] = df['actual_productivity']/df['no_of_workers']
df['diference_prod_targeted_actual'] = df['actual_productivity'] - df['targeted_productivity']
df['time_per_worker'] = df['smv']/ df['no_of_workers']
df['idle_men_percent'] = df['idle_men']/df['no_of_workers']
df
Out[31]:
date quarter department day team targeted_productivity smv wip over_time incentive idle_time idle_men no_of_style_change no_of_workers actual_productivity prod_per_worker diference_prod_targeted_actual time_per_worker idle_men_percent
0 2015-01-01 Quarter1 sweing Thursday 8 0.80 26.16 1108.0 7080 98 0.0 0 0 59.0 0.940725 0.015944 0.140725 0.443390 0.0
1 2015-01-01 Quarter1 finishing Thursday 1 0.75 3.94 1038.0 960 0 0.0 0 0 8.0 0.886500 0.110812 0.136500 0.492500 0.0
2 2015-01-01 Quarter1 sweing Thursday 11 0.80 11.41 968.0 3660 50 0.0 0 0 30.5 0.800570 0.026248 0.000570 0.374098 0.0
3 2015-01-01 Quarter1 sweing Thursday 12 0.80 11.41 968.0 3660 50 0.0 0 0 30.5 0.800570 0.026248 0.000570 0.374098 0.0
4 2015-01-01 Quarter1 sweing Thursday 6 0.80 25.90 1170.0 1920 50 0.0 0 0 56.0 0.800382 0.014293 0.000382 0.462500 0.0
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
1192 2015-03-11 Quarter2 finishing Wednesday 10 0.75 2.90 935.0 960 0 0.0 0 0 8.0 0.628333 0.078542 -0.121667 0.362500 0.0
1193 2015-03-11 Quarter2 finishing Wednesday 8 0.70 3.90 935.0 960 0 0.0 0 0 8.0 0.625625 0.078203 -0.074375 0.487500 0.0
1194 2015-03-11 Quarter2 finishing Wednesday 7 0.65 3.90 935.0 960 0 0.0 0 0 8.0 0.625625 0.078203 -0.024375 0.487500 0.0
1195 2015-03-11 Quarter2 finishing Wednesday 9 0.75 2.90 935.0 1800 0 0.0 0 0 15.0 0.505889 0.033726 -0.244111 0.193333 0.0
1196 2015-03-11 Quarter2 finishing Wednesday 6 0.70 2.90 935.0 720 0 0.0 0 0 6.0 0.394722 0.065787 -0.305278 0.483333 0.0

1197 rows × 19 columns

In [32]:
new_features = ['prod_per_worker','diference_prod_targeted_actual',  'time_per_worker', 'idle_men_percent']
In [33]:
#distribuiçao de novas features
for hist in new_features:
    plt.figure(figsize=(10,5))
    plt.title(f'histograma {hist}')
    sns.histplot(df[hist], kde=True)
plt.show()
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
In [34]:
new_num_col = df.select_dtypes(exclude=['object', 'datetime64[ns]'])
new_num_col
Out[34]:
team targeted_productivity smv wip over_time incentive idle_time idle_men no_of_style_change no_of_workers actual_productivity prod_per_worker diference_prod_targeted_actual time_per_worker idle_men_percent
0 8 0.80 26.16 1108.0 7080 98 0.0 0 0 59.0 0.940725 0.015944 0.140725 0.443390 0.0
1 1 0.75 3.94 1038.0 960 0 0.0 0 0 8.0 0.886500 0.110812 0.136500 0.492500 0.0
2 11 0.80 11.41 968.0 3660 50 0.0 0 0 30.5 0.800570 0.026248 0.000570 0.374098 0.0
3 12 0.80 11.41 968.0 3660 50 0.0 0 0 30.5 0.800570 0.026248 0.000570 0.374098 0.0
4 6 0.80 25.90 1170.0 1920 50 0.0 0 0 56.0 0.800382 0.014293 0.000382 0.462500 0.0
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
1192 10 0.75 2.90 935.0 960 0 0.0 0 0 8.0 0.628333 0.078542 -0.121667 0.362500 0.0
1193 8 0.70 3.90 935.0 960 0 0.0 0 0 8.0 0.625625 0.078203 -0.074375 0.487500 0.0
1194 7 0.65 3.90 935.0 960 0 0.0 0 0 8.0 0.625625 0.078203 -0.024375 0.487500 0.0
1195 9 0.75 2.90 935.0 1800 0 0.0 0 0 15.0 0.505889 0.033726 -0.244111 0.193333 0.0
1196 6 0.70 2.90 935.0 720 0 0.0 0 0 6.0 0.394722 0.065787 -0.305278 0.483333 0.0

1197 rows × 15 columns

Matriz correlaçao

In [35]:
#plotando nova matriz de correlaçao
plt.figure(figsize=(10,5))
plt.title('matriz correlaçao com novos dados')
sns.heatmap(new_num_col.corr(), annot=True, cmap='coolwarm', fmt='.2f', linewidths=0.5, cbar=True)
plt.show
Out[35]:
<function matplotlib.pyplot.show(close=None, block=None)>
No description has been provided for this image

Modelagem

In [36]:
#colocando data como index 
df = df.set_index(df['date'])
df = df.drop('date', axis=1)
In [37]:
df.columns
Out[37]:
Index(['quarter', 'department', 'day', 'team', 'targeted_productivity', 'smv',
       'wip', 'over_time', 'incentive', 'idle_time', 'idle_men',
       'no_of_style_change', 'no_of_workers', 'actual_productivity',
       'prod_per_worker', 'diference_prod_targeted_actual', 'time_per_worker',
       'idle_men_percent'],
      dtype='object')
In [38]:
#escolhendo x e y 
x = df.drop('actual_productivity', axis=1)
y = df['actual_productivity']
In [39]:
x.shape, y.shape
Out[39]:
((1197, 17), (1197,))
In [40]:
#split
split_size = 0.9
train_size = int(len(df) * split_size)
x_train, x_test = x[:train_size], x[train_size:]
y_train, y_test = y[:train_size], y[train_size:]
In [41]:
x_train.shape, x_test.shape
Out[41]:
((1077, 17), (120, 17))
In [42]:
y_train.shape, y_test.shape
Out[42]:
((1077,), (120,))
In [43]:
new_num_col.columns
Out[43]:
Index(['team', 'targeted_productivity', 'smv', 'wip', 'over_time', 'incentive',
       'idle_time', 'idle_men', 'no_of_style_change', 'no_of_workers',
       'actual_productivity', 'prod_per_worker',
       'diference_prod_targeted_actual', 'time_per_worker',
       'idle_men_percent'],
      dtype='object')
In [44]:
cat_col
Out[44]:
Index(['quarter', 'department', 'day'], dtype='object')
In [45]:
#separaçao de atributos 
num_atribs = ['team', 'targeted_productivity', 'smv', 'wip', 'over_time', 'incentive',
       'idle_time', 'idle_men', 'no_of_style_change', 'no_of_workers',
       'prod_per_worker',
       'diference_prod_targeted_actual', 'time_per_worker',
       'idle_men_percent']
        
cat_atribs = ['quarter', 'department', 'day']
In [46]:
#pipeline numerica
num_pipeline = Pipeline([
    ('robust_scaler', RobustScaler()),
])
In [47]:
#transformaçao de colunas 
column_tranf = ColumnTransformer([
    ('num_pipeline', num_pipeline, num_atribs),  
    ('1hot_enc', OneHotEncoder(), cat_atribs)   
])
In [48]:
#definiçao da pipe
pipe = Pipeline([('transform', column_tranf),
                ('model', Lasso())
    
])
In [49]:
#teste da pipe
pipe.set_params(model=Ridge()).fit(x_train, y_train)
pipe_pred = pipe.predict(x_test)
In [50]:
#funçao para calcular metricas 
def metrics(model_name, y_test, y_pred):
    result_list = []
    mse = mean_squared_error(y_test, y_pred)
    mae = mean_absolute_error(y_test, y_pred)
    r2 = r2_score(y_test, y_pred) 
    mean_percent = mean_absolute_percentage_error(y_test, y_pred)
    
    results = {'model_name':model_name,
        'mse':mse,
        'mae':mae,
        'r2':r2,
        'mean_percent':mean_percent,
        
    }
    result_list.append({'model_name':results['model_name'],
                    'mse':results['mse'],
                    'mae':results['mae'],
                    'r2':results['r2'],
                    'mean_percent':results['mean_percent']})
    return pd.DataFrame(result_list)
In [51]:
 metrics(model_name=Ridge(), y_test=y_test, y_pred=pipe_pred)
Out[51]:
model_name mse mae r2 mean_percent
0 Ridge() 0.000016 0.001102 0.999314 0.001621

Treinamento e avaliaçao dos modelos

In [52]:
models =  {'Reg_linear':LinearRegression(),
        'D_tree':DecisionTreeRegressor(),
        'Ada_reg': AdaBoostRegressor(),
        'Neural_net':MLPRegressor(),
        'Reg_lasso':Lasso(),
        'Ridge':Ridge(),
        'SVR': SVR()
    
}
In [53]:
#loop treino/teste
for i, (model_name, model) in enumerate(models.items()):
    pipe.set_params(model=model).fit(x_train, y_train)
    y_pred = pipe.predict(x_test)
    metrics_out = metrics(model_name=model_name, y_pred=y_pred, y_test=y_test)
    
    print('--------------------'*10)
    print(metrics_out)
    
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
   model_name           mse           mae   r2  mean_percent
0  Reg_linear  3.614842e-31  3.261280e-16  1.0  5.249231e-16
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  model_name       mse       mae        r2  mean_percent
0     D_tree  0.001133  0.012992  0.950251      0.022059
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  model_name       mse       mae        r2  mean_percent
0    Ada_reg  0.002016  0.036045  0.911488      0.056766
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
   model_name       mse      mae         r2  mean_percent
0  Neural_net  0.296422  0.17167 -12.014323      0.249715
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  model_name       mse       mae        r2  mean_percent
0  Reg_lasso  0.022963  0.114869 -0.008171      0.207104
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  model_name       mse       mae        r2  mean_percent
0      Ridge  0.000016  0.001102  0.999314      0.001621
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  model_name       mse       mae        r2  mean_percent
0        SVR  0.005414  0.049011  0.762313      0.079265

Cross val score

In [54]:
for i, (val_name, val_score) in enumerate(models.items()):
    estimator = pipe.set_params(model=val_score).fit(x_train, y_train)
    cross_val = cross_val_score(estimator, x_train, y_train, cv=10, scoring='r2')
    val_results = {
                'score':cross_val, 
        'score_max':cross_val.max(),
                'score_min':cross_val.min(),
                'score_media':cross_val.mean()
    }
    print(val_name)
    print(val_results)
    print('--------------------'*10)
Reg_linear
{'score': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.]), 'score_max': 1.0, 'score_min': 1.0, 'score_media': 1.0}
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
D_tree
{'score': array([0.99097702, 0.97001638, 0.93358129, 0.91852691, 0.94376818,
       0.98747592, 0.98174667, 0.98601787, 0.98582663, 0.97617553]), 'score_max': 0.9909770161875467, 'score_min': 0.9185269073808034, 'score_media': 0.9674112407243441}
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Ada_reg
{'score': array([0.74415946, 0.8767817 , 0.88775314, 0.93848045, 0.9273581 ,
       0.90928671, 0.91202064, 0.92818873, 0.93660764, 0.8986932 ]), 'score_max': 0.9384804504204413, 'score_min': 0.7441594568504293, 'score_media': 0.8959329754794686}
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Neural_net
{'score': array([ 0.73005864,  0.89382908,  0.84585599,  0.85176282,  0.85536029,
       -7.82966404, -2.95336309,  0.45030289,  0.7690593 ,  0.43946863]), 'score_max': 0.8938290758050985, 'score_min': -7.829664040828163, 'score_media': -0.49473294869762674}
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Reg_lasso
{'score': array([-2.48175097e-01, -1.88445232e-02, -1.10101911e-04, -8.45906091e-03,
       -8.68095556e-02, -4.50866801e-02, -2.74757755e-03, -9.39791759e-02,
       -1.19315037e-01, -8.09788903e-02]), 'score_max': -0.00011010191133764557, 'score_min': -0.2481750965697378, 'score_media': -0.07045056988967284}
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Ridge
{'score': array([0.99999643, 0.99999791, 0.99999737, 0.99999787, 0.99999704,
       0.99999827, 0.99999764, 0.9999979 , 0.99999787, 0.99999796]), 'score_max': 0.9999982701679605, 'score_min': 0.9999964279023615, 'score_media': 0.9999976269819403}
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
SVR
{'score': array([0.83015689, 0.89478357, 0.90572522, 0.92009728, 0.89966968,
       0.65899328, 0.85303919, 0.90501172, 0.91891975, 0.9128633 ]), 'score_max': 0.9200972778843293, 'score_min': 0.6589932831576895, 'score_media': 0.8699259877083989}
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
In [55]:
#plotando y e linhas de prediçao 
for i, testes in models.items():
    pipe.set_params(model=testes).fit(x_train, y_train)
    _pred = pipe.predict(x_test)
    plt.figure(figsize=(10,5))
    plt.title(f'prediçao modelo {testes}')
    sns.scatterplot(x=range(len(y_test)), y=y_test)
    sns.lineplot(_pred, color='orange', label=f'prediçao {testes}', linestyle='--')  
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image

Relatório dos Modelos

Regressão Linear

Métricas:

MSE: 3.614842e-31

MAE: 3.261280e-16

R²: 1.0

Mean Percent: 5.249231e-16

-> Apresenta scores extremamente altos pela baixa complexidade do modelo em relação aos dados, podendo indicar overfitting.

Árvores de Decisão

Métricas:

MSE: 0.001089

MAE: 0.014322

R²: 0.952174

Mean Percent: 0.024498

-> Boas métricas, com erro baixo e bom desempenho em relação à variabilidade dos dados.

Pode ser uma boa escolha para aplicação futura.

AdaBoosting

Métricas:

MSE: 0.001937

MAE: 0.035939

R²: 0.914977

Mean Percent: 0.056122

-> Assim como a árvore de decisão, o AdaBoost apresenta bom desempenho e trabalha bem com a variabilidade dos dados.

Pode ser considerado para futuro deploy, levando em conta o custo operacional.

Rede Neural

Métricas:

MSE: 0.168849

MAE: 0.140431

R²: -6.413276

Mean Percent: 0.207295

-> Desempenho ruim, com erros altos e baixo score em R².

Dos modelos treinados, é um dos piores.

O desempenho pode melhorar significativamente se ajustarmos os hiperparâmetros.

Regressão Lasso

Métricas:

MSE: 0.022963

MAE: 0.114869

R²: -0.008171

Mean Percent: 0.207104

-> Desempenho ruim, com R² próximo de 0.

Não deve ser levado em consideração neste experimento.

Regressão Ridge

Métricas:

MSE: 0.000016

MAE: 0.001102

R²: 0.999314

Mean Percent: 0.001621

-> Vencedor do experimento.

Beira a perfeição, explicando muito bem a variabilidade dos dados (R² alto) e apresentando erros muito baixos.

Modelo recomendado para produção.

SVR (Suporte a Vetores)

Métricas:

MSE: 0.005414

MAE: 0.049011

R²: 0.762313

Mean Percent: 0.079265

-> Desempenho intermediário.

R² abaixo do esperado, o que limita sua aplicabilidade.

Multicolinaridade

Nossos dados indicam a presença de multicolinearidade, ou seja, duas ou mais variáveis independentes apresentam uma correlação muito alta. Isso pode prejudicar o desempenho do nosso modelo de regressão, reduzindo sua capacidade de generalização e tornando as estimativas dos coeficientes menos confiáveis. Para melhorar a robustez do modelo, é importante identificar e tratar a multicolinearidade adequadamente.

PCA

O PCA transforma os dados originais em um novo conjunto de variáveis não correlacionadas, chamadas componentes principais. Isso ajuda a resolver a multicolinearidade, pois as novas variáveis são ortogonais entre si. Sendo ortogonais, essas variáveis não possuem correlação entre si.

In [56]:
#pipe pca
pipe_pca = Pipeline([('transform', column_tranf),
                ('pca', PCA()),
                ('model', Lasso())
            
    
])
In [57]:
pipe_pca.set_params(model=Ridge()).fit(x_train, y_train)
pca_pred = pipe_pca.predict(x_test)
metrics(model_name=Lasso(), y_pred=pca_pred, y_test=y_test)
Out[57]:
model_name mse mae r2 mean_percent
0 Lasso() 0.000016 0.001102 0.999314 0.001621
In [58]:
#loop treinp/teste utilizando pca 
print('treino/avaliaçao pós PCA')
for i, (pca_name, model_pca) in enumerate(models.items()):
    pipe.set_params(model=model_pca).fit(x_train, y_train)
    pca_pred = pipe.predict(x_test)
    pca_out = metrics(model_name=pca_name, y_pred=pca_pred, y_test=y_test)
    print('-------------------------------'*10)
    print(pca_out)
treino/avaliaçao pós PCA
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
   model_name           mse           mae   r2  mean_percent
0  Reg_linear  3.614842e-31  3.261280e-16  1.0  5.249231e-16
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  model_name       mse       mae        r2  mean_percent
0     D_tree  0.000964  0.013655  0.957675        0.0242
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  model_name       mse       mae      r2  mean_percent
0    Ada_reg  0.001629  0.031384  0.9285       0.04854
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
   model_name       mse       mae       r2  mean_percent
0  Neural_net  0.043539  0.095303 -0.91159      0.148858
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  model_name       mse       mae        r2  mean_percent
0  Reg_lasso  0.022963  0.114869 -0.008171      0.207104
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  model_name       mse       mae        r2  mean_percent
0      Ridge  0.000016  0.001102  0.999314      0.001621
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  model_name       mse       mae        r2  mean_percent
0        SVR  0.005414  0.049011  0.762313      0.079265

No geral, usamos o PCA para tratar a multicolinearidade de nossos modelos. No entanto, observamos uma pequena melhora nos modelos baseados em árvore de decisão. Os outros modelos nao apresentaram mudanças significativas.

A regressão Ridge manteve seu desempenho ótimo.

In [59]:
#vizualizando variancia 
pca = pipe_pca.named_steps['pca']
plt.figure(figsize=(10,5))
plt.title('variancia PCA')
sns.lineplot(np.cumsum(pca.explained_variance_ratio_), marker='o', linestyle='--')
plt.xlabel('componentes')
plt.ylabel('variancia')
plt.grid()
plt.show()
No description has been provided for this image

Redes neurais - Pytorch

Nessa parte do projeto eu escolhi trabalhar um pouco com o Pytorch, afim de explorar redes profundas. Por tratar de dados temporais, vamos utilizar modelos baseados em recorrencia: LSTM e GRU

Redes recorrentes utilizam a lógica de loop, ou seja, a informação retorna ao processamento, permitindo que os dados persistam.

Long Short Term Memory (LSTM)

As LSTM são redes recorrentes que "lembram" informações de forma mais eficiente, resolvendo problemas como o desaparecimento e explosão do gradiente. Elas possuem células com três portas principais: a porta de entrada, que controla as novas informações a serem armazenadas; a porta de esquecimento, que decide o que deve ser descartado; e a porta de saída, que define as informações usadas na saída. Essa estrutura permite que as LSTM capturem dependências de longo prazo em dados sequenciais, sendo eficazes em tarefas como tradução automática e reconhecimento de fala.

image.png

In [60]:
#setando seed
torch.manual_seed(42)
Out[60]:
<torch._C.Generator at 0x26dfb0dd350>
In [61]:
x_train.shape
Out[61]:
(1077, 17)
In [62]:
#criaçao da classe da LSTM
class LSTM(nn.Module):
    def __init__(self):
        super().__init__()
        self.LSTM1 = nn.LSTM(input_size=28, hidden_size=300)
        self.LSTM2 = nn.LSTM(300, 150)
        self.LSTM3 = nn.LSTM(150, 50)
        self.LSTM4 = nn.LSTM(50, 50, dropout=0.3, num_layers=2)
        self.dropout = nn.Dropout(p=0.3)
        self.linear = nn.Linear(50, 1)  
        
    def forward(self, x):
        x, (h1, c1) = self.LSTM1(x)
        x, (h2, c2) = self.LSTM2(x)
        x, (h3, c3) = self.LSTM3(x)
        x, (h4, c4) = self.LSTM4(x)
        x = self.dropout(x)
        x = x[:, -1, :]  
        x = self.linear(x)
        
        return x

        
In [63]:
#escolhendo criterio para o erro e optimizador 
model_lstm = LSTM()
criterion = nn.MSELoss()
optmizer = optim.SGD(model_lstm.parameters())
In [64]:
#tranformaçao dos dados 
pipe_transf = Pipeline(steps=[
    ('transf', column_tranf)
])
x_train_torch = pipe_transf.fit_transform(x_train)
In [65]:
#transformaçao dados em np.array
x_array = np.array(x_train_torch)
y_array = np.array(y_train)
type(y_array), type(x_array)
Out[65]:
(numpy.ndarray, numpy.ndarray)
In [66]:
#transformaçao dados em tensores 
x_train_tensor = torch.Tensor(x_array)
y_train_tensor = torch.Tensor(y_array)
x_train_tensor = x_train_tensor.unsqueeze(1) 
y_train_tensor = y_train_tensor.long()
In [67]:
print(x_train_tensor.shape)  
torch.Size([1077, 1, 28])
In [68]:
#loop treinamento LSTM 
print('estatisticas do treinamento - LSTM')
losses = []
for epoch in range(200):
    model_lstm.train()
    lstm_pred = model_lstm(x_train_tensor)
    lstm_pred = lstm_pred.float()
    y_train_tensor = y_train_tensor.float()
    loss = criterion(lstm_pred, y_train_tensor)
    losses.append(loss.item()) 
    
    optmizer.zero_grad()
    loss.backward()
    optmizer.step()
    
    print('----------------------------------'*10)
    print(f'epoca {epoch} erro: {loss}')
plt.figure(figsize=(10,5))
plt.title('grafico perda treinamento - LSTM')
plt.plot(losses, color='red')
plt.xlabel('epocas')
plt.ylabel('perdas')
plt.grid()
plt.show()
estatisticas do treinamento - LSTM
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 0 erro: 0.03472690284252167
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 1 erro: 0.034724440425634384
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 2 erro: 0.03469996154308319
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 3 erro: 0.03470443934202194
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 4 erro: 0.03475184738636017
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 5 erro: 0.03473255783319473
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 6 erro: 0.03474593162536621
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 7 erro: 0.03470525145530701
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 8 erro: 0.034683406352996826
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 9 erro: 0.0347057469189167
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 10 erro: 0.034699421375989914
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 11 erro: 0.03467569872736931
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 12 erro: 0.03464388847351074
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 13 erro: 0.034639373421669006
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 14 erro: 0.034610897302627563
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 15 erro: 0.034636758267879486
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 16 erro: 0.03460339456796646
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 17 erro: 0.03469545394182205
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 18 erro: 0.03461607173085213
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 19 erro: 0.03462355211377144
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 20 erro: 0.03457208350300789
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 21 erro: 0.03464953973889351
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 22 erro: 0.034635867923498154
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 23 erro: 0.03464211896061897
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 24 erro: 0.034610867500305176
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 25 erro: 0.03454901650547981
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 26 erro: 0.0346689373254776
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 27 erro: 0.03452972695231438
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 28 erro: 0.03461436554789543
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 29 erro: 0.03452323377132416
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 30 erro: 0.03453131765127182
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 31 erro: 0.034547701478004456
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 32 erro: 0.03454950079321861
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 33 erro: 0.034505922347307205
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 34 erro: 0.034618303179740906
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 35 erro: 0.03451395407319069
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 36 erro: 0.0345558300614357
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 37 erro: 0.0345698744058609
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 38 erro: 0.034488577395677567
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 39 erro: 0.03453578054904938
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 40 erro: 0.03443961590528488
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 41 erro: 0.034463051706552505
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 42 erro: 0.03441356122493744
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 43 erro: 0.0344734750688076
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 44 erro: 0.03448399156332016
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 45 erro: 0.03454704210162163
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 46 erro: 0.03451910242438316
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 47 erro: 0.034431200474500656
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 48 erro: 0.034444719552993774
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 49 erro: 0.034466277807950974
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 50 erro: 0.0344238206744194
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 51 erro: 0.03446142375469208
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 52 erro: 0.03446196764707565
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 53 erro: 0.034374967217445374
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 54 erro: 0.03440548852086067
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 55 erro: 0.034429363906383514
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 56 erro: 0.03436241298913956
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 57 erro: 0.03440447151660919
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 58 erro: 0.03438416123390198
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 59 erro: 0.034354954957962036
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 60 erro: 0.03437965363264084
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 61 erro: 0.03435877710580826
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 62 erro: 0.03442581743001938
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 63 erro: 0.0343286506831646
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 64 erro: 0.0343392938375473
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 65 erro: 0.03438132628798485
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 66 erro: 0.03436542674899101
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 67 erro: 0.0344013012945652
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 68 erro: 0.0343686006963253
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 69 erro: 0.03436741232872009
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 70 erro: 0.03439094126224518
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 71 erro: 0.03440631926059723
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 72 erro: 0.03436863049864769
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 73 erro: 0.034289613366127014
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 74 erro: 0.034327950328588486
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 75 erro: 0.034335657954216
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 76 erro: 0.03437913954257965
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 77 erro: 0.034420326352119446
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 78 erro: 0.034300412982702255
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 79 erro: 0.034300483763217926
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 80 erro: 0.03430865705013275
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 81 erro: 0.034367531538009644
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 82 erro: 0.034380193799734116
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 83 erro: 0.034215297549963
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 84 erro: 0.03427358716726303
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 85 erro: 0.034264642745256424
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 86 erro: 0.03434184566140175
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 87 erro: 0.0343024842441082
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 88 erro: 0.034298624843358994
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 89 erro: 0.03434199467301369
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 90 erro: 0.034290824085474014
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 91 erro: 0.03425167500972748
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 92 erro: 0.034293413162231445
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 93 erro: 0.03425905853509903
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 94 erro: 0.03425371274352074
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 95 erro: 0.03425611928105354
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 96 erro: 0.03419532999396324
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 97 erro: 0.03425117954611778
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 98 erro: 0.0342782624065876
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 99 erro: 0.03428152948617935
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 100 erro: 0.034262415021657944
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 101 erro: 0.03423264995217323
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 102 erro: 0.03419005125761032
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 103 erro: 0.03425784036517143
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 104 erro: 0.03431064635515213
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 105 erro: 0.034170035272836685
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 106 erro: 0.034247297793626785
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 107 erro: 0.03417791426181793
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 108 erro: 0.03421013057231903
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 109 erro: 0.034167274832725525
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 110 erro: 0.0341307707130909
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 111 erro: 0.03427569195628166
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 112 erro: 0.034175995737314224
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 113 erro: 0.03421775624155998
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 114 erro: 0.03421097993850708
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 115 erro: 0.03417767956852913
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 116 erro: 0.034197624772787094
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 117 erro: 0.03413645923137665
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 118 erro: 0.034142594784498215
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 119 erro: 0.0341721810400486
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 120 erro: 0.034185852855443954
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 121 erro: 0.03420320525765419
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 122 erro: 0.03420618921518326
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 123 erro: 0.03411545976996422
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 124 erro: 0.034194815903902054
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 125 erro: 0.03421767055988312
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 126 erro: 0.03411909565329552
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 127 erro: 0.03411369398236275
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 128 erro: 0.03415056690573692
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 129 erro: 0.03416047245264053
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 130 erro: 0.034090280532836914
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 131 erro: 0.03414728865027428
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 132 erro: 0.03414209187030792
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 133 erro: 0.0341358557343483
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 134 erro: 0.03414503484964371
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 135 erro: 0.034151412546634674
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 136 erro: 0.03417307510972023
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 137 erro: 0.03412218391895294
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 138 erro: 0.03407152742147446
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 139 erro: 0.03409768268465996
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 140 erro: 0.03412018343806267
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 141 erro: 0.034103430807590485
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 142 erro: 0.034063681960105896
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 143 erro: 0.0340954065322876
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 144 erro: 0.034005340188741684
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 145 erro: 0.03409615531563759
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 146 erro: 0.03405918553471565
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 147 erro: 0.034085068851709366
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 148 erro: 0.03409608453512192
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 149 erro: 0.034042347222566605
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 150 erro: 0.034040190279483795
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 151 erro: 0.03402642533183098
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 152 erro: 0.03412070497870445
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 153 erro: 0.0340469591319561
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 154 erro: 0.03409657999873161
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 155 erro: 0.03407581150531769
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 156 erro: 0.034079279750585556
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 157 erro: 0.034008488059043884
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 158 erro: 0.034102920442819595
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 159 erro: 0.034047748893499374
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 160 erro: 0.034027185291051865
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 161 erro: 0.034101005643606186
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 162 erro: 0.034054968506097794
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 163 erro: 0.03407488018274307
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 164 erro: 0.03408881276845932
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 165 erro: 0.03409300744533539
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 166 erro: 0.03400752320885658
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 167 erro: 0.03400014713406563
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 168 erro: 0.033980805426836014
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 169 erro: 0.0340644046664238
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 170 erro: 0.03403051942586899
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 171 erro: 0.033992256969213486
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 172 erro: 0.03404192999005318
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 173 erro: 0.033945970237255096
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 174 erro: 0.03404305875301361
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 175 erro: 0.034010518342256546
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 176 erro: 0.033951397985219955
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 177 erro: 0.034022651612758636
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 178 erro: 0.03404965251684189
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 179 erro: 0.03403728827834129
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 180 erro: 0.03401416540145874
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 181 erro: 0.03397141396999359
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 182 erro: 0.033990323543548584
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 183 erro: 0.03394998237490654
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 184 erro: 0.034015193581581116
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 185 erro: 0.033937085419893265
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 186 erro: 0.03398029878735542
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 187 erro: 0.033989425748586655
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 188 erro: 0.03400202840566635
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 189 erro: 0.033985987305641174
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 190 erro: 0.03396650776267052
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 191 erro: 0.03396053984761238
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 192 erro: 0.033950190991163254
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 193 erro: 0.03395099937915802
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 194 erro: 0.033946748822927475
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 195 erro: 0.033962249755859375
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 196 erro: 0.03395281732082367
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 197 erro: 0.03394249826669693
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 198 erro: 0.0339539609849453
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 199 erro: 0.03391988202929497
No description has been provided for this image

Gated Recurrent Unit (GRU)

As GRUs são um tipo de rede neural recorrente, similar às LSTM, mas com uma estrutura mais simples. Elas também são projetadas para resolver o problema de desaparecimento e explosão do gradiente, mantendo a capacidade de "lembrar" informações em sequências temporais. As GRUs possuem duas portas principais: a porta de atualização, que controla como as informações passadas e novas devem ser combinadas, e a porta de reset, que decide quais informações anteriores devem ser esquecidas

image.png

In [69]:
#criaçao da classe GRU 
class GRU(nn.Module):
    def __init__(self):
        super().__init__()
        self.gru1 = nn.GRU(input_size=28,hidden_size=300, batch_first=True) 
        self.gru2 = nn.GRU(300,150, batch_first=True)
        self.gru3 = nn.GRU(150, 50, batch_first=True)
        self.gru4 = nn.GRU(50, 50)
        self.linear = nn.Linear(50, 1)
        self.dropout = nn.Dropout(0.3)
        self.batch_norm = nn.BatchNorm1d(50)
        
    def forward(self, x):
        x, _ = self.gru1(x)
        x, _ = self.gru2(x)
        x, _ = self.gru3(x)
        x, _ = self.gru4(x)
        x = self.batch_norm(x[:, -1, :])    
        x = self.dropout(x)    
        x = self.linear(x)  
       

        return x
In [70]:
model_gru  = GRU()
criterion_gru = nn.MSELoss()
optimizer_gru = optim.Adam(model_gru.parameters(), lr=0.001, weight_decay=1e-5)
scheduler = StepLR(optimizer_gru, step_size=50, gamma=0.1) 
In [71]:
#loop treinamento GRU
print('estatisticas treinamento - GRU')
gru_losses = []
for epoch_gru in range(200):
    model_gru.train()
    gru_pred = model_gru(x_train_tensor).float()
    y_train_tensor = y_train_tensor.float()
    gru_loss = criterion_gru(gru_pred, y_train_tensor)
    gru_losses.append(gru_loss.item())
    
    optimizer_gru.zero_grad()
    gru_loss.backward(retain_graph=True)
    optimizer_gru.step()
    scheduler.step()
    
    print('----------------------------------'*10)
    print(f'epoca {epoch_gru} erro: {gru_loss}')
    

plt.figure(figsize=(10,5))
plt.title('grafico perda treinameto - GRU')
plt.plot(gru_losses, color='red')
plt.xlabel('epocas')
plt.ylabel('perdas')
plt.grid()
plt.show()
estatisticas treinamento - GRU
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 0 erro: 0.8877992630004883
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 1 erro: 0.31527823209762573
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 2 erro: 0.31546396017074585
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 3 erro: 0.28819867968559265
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 4 erro: 0.2290400117635727
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 5 erro: 0.1904841661453247
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 6 erro: 0.2619463801383972
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 7 erro: 0.1887928545475006
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 8 erro: 0.17585135996341705
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 9 erro: 0.20299677550792694
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 10 erro: 0.20287783443927765
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 11 erro: 0.13877610862255096
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 12 erro: 0.19363033771514893
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 13 erro: 0.148996964097023
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 14 erro: 0.15345346927642822
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 15 erro: 0.17667141556739807
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 16 erro: 0.14819768071174622
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 17 erro: 0.13320226967334747
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 18 erro: 0.2134779542684555
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 19 erro: 0.19448009133338928
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 20 erro: 0.19943365454673767
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 21 erro: 0.25441673398017883
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 22 erro: 0.16545948386192322
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 23 erro: 0.1648658812046051
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 24 erro: 0.15957330167293549
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 25 erro: 0.11764509230852127
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 26 erro: 0.14896228909492493
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 27 erro: 0.139964759349823
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 28 erro: 0.17745068669319153
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 29 erro: 0.1940976083278656
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 30 erro: 0.13885143399238586
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 31 erro: 0.13686376810073853
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 32 erro: 0.1344657838344574
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 33 erro: 0.176542729139328
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 34 erro: 0.10499386489391327
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 35 erro: 0.1817292720079422
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 36 erro: 0.16402412950992584
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 37 erro: 0.14506739377975464
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 38 erro: 0.11932140588760376
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 39 erro: 0.13671493530273438
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 40 erro: 0.13167989253997803
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 41 erro: 0.09795118868350983
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 42 erro: 0.1537201851606369
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 43 erro: 0.13675029575824738
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 44 erro: 0.18124888837337494
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 45 erro: 0.12830033898353577
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 46 erro: 0.15452858805656433
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 47 erro: 0.18532685935497284
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 48 erro: 0.10562335699796677
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 49 erro: 0.205404132604599
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 50 erro: 0.10027584433555603
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 51 erro: 0.13217991590499878
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 52 erro: 0.15112128853797913
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 53 erro: 0.09726094454526901
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 54 erro: 0.12344653904438019
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 55 erro: 0.10181047767400742
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 56 erro: 0.12494248151779175
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 57 erro: 0.09421394765377045
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 58 erro: 0.1735238879919052
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 59 erro: 0.10095640271902084
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 60 erro: 0.13137875497341156
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 61 erro: 0.10834814608097076
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 62 erro: 0.12287700176239014
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 63 erro: 0.15951333940029144
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 64 erro: 0.17875711619853973
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 65 erro: 0.1188131719827652
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 66 erro: 0.15363985300064087
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 67 erro: 0.08067096024751663
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 68 erro: 0.09320785105228424
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 69 erro: 0.14039665460586548
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 70 erro: 0.13713040947914124
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 71 erro: 0.10992592573165894
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 72 erro: 0.12142177671194077
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 73 erro: 0.14758163690567017
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 74 erro: 0.08985643088817596
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 75 erro: 0.1176113486289978
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 76 erro: 0.11131847649812698
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 77 erro: 0.12767034769058228
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 78 erro: 0.0984528586268425
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 79 erro: 0.12547850608825684
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 80 erro: 0.11047077924013138
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 81 erro: 0.12117215245962143
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 82 erro: 0.11015547066926956
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 83 erro: 0.09749499708414078
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 84 erro: 0.10144129395484924
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 85 erro: 0.167779803276062
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 86 erro: 0.09386343508958817
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 87 erro: 0.11941741406917572
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 88 erro: 0.10965950042009354
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 89 erro: 0.16642266511917114
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 90 erro: 0.11453448981046677
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 91 erro: 0.1134956032037735
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 92 erro: 0.1107478067278862
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 93 erro: 0.09383486211299896
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 94 erro: 0.11669129878282547
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 95 erro: 0.11042636632919312
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 96 erro: 0.10014316439628601
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 97 erro: 0.12419141083955765
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 98 erro: 0.13851071894168854
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 99 erro: 0.11077858507633209
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 100 erro: 0.14529715478420258
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 101 erro: 0.1613866239786148
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 102 erro: 0.10580229759216309
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 103 erro: 0.08647331595420837
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 104 erro: 0.09345559775829315
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 105 erro: 0.14930635690689087
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 106 erro: 0.09467583149671555
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 107 erro: 0.15391185879707336
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 108 erro: 0.12164567410945892
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 109 erro: 0.11331456154584885
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 110 erro: 0.12525027990341187
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 111 erro: 0.13235396146774292
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 112 erro: 0.11596259474754333
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 113 erro: 0.10855431854724884
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 114 erro: 0.13989292085170746
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 115 erro: 0.13549771904945374
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 116 erro: 0.10387886315584183
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 117 erro: 0.12844449281692505
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 118 erro: 0.13901282846927643
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 119 erro: 0.14062421023845673
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 120 erro: 0.17807237803936005
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 121 erro: 0.11314736306667328
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 122 erro: 0.1464778631925583
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 123 erro: 0.13100886344909668
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 124 erro: 0.12338025867938995
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 125 erro: 0.09336763620376587
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 126 erro: 0.1259457916021347
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 127 erro: 0.15491896867752075
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 128 erro: 0.0857587680220604
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 129 erro: 0.08720828592777252
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 130 erro: 0.15897312760353088
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 131 erro: 0.09339909255504608
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 132 erro: 0.12208452075719833
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 133 erro: 0.1307068020105362
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 134 erro: 0.08967209607362747
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 135 erro: 0.13008970022201538
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 136 erro: 0.09812460839748383
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 137 erro: 0.11524495482444763
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 138 erro: 0.11444736272096634
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 139 erro: 0.12327473610639572
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 140 erro: 0.13340377807617188
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 141 erro: 0.12393312156200409
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 142 erro: 0.11517956852912903
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 143 erro: 0.12503008544445038
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 144 erro: 0.1479952037334442
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 145 erro: 0.14669866859912872
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 146 erro: 0.11304781585931778
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 147 erro: 0.16147416830062866
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 148 erro: 0.1416742503643036
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 149 erro: 0.17356424033641815
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 150 erro: 0.13662977516651154
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 151 erro: 0.11044490337371826
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 152 erro: 0.1057451069355011
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 153 erro: 0.10275763273239136
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 154 erro: 0.12003082782030106
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 155 erro: 0.13990677893161774
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 156 erro: 0.09037083387374878
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 157 erro: 0.14699961245059967
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 158 erro: 0.18086881935596466
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 159 erro: 0.10975343734025955
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 160 erro: 0.11610057204961777
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 161 erro: 0.08808387815952301
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 162 erro: 0.10910220444202423
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 163 erro: 0.08280616998672485
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 164 erro: 0.09343266487121582
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 165 erro: 0.0906841903924942
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 166 erro: 0.11206013709306717
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 167 erro: 0.1466684341430664
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 168 erro: 0.12781639397144318
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 169 erro: 0.11154694110155106
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 170 erro: 0.13519273698329926
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 171 erro: 0.13181079924106598
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 172 erro: 0.09223319590091705
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 173 erro: 0.14516201615333557
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 174 erro: 0.11400113254785538
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 175 erro: 0.14728644490242004
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 176 erro: 0.13836102187633514
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 177 erro: 0.12961885333061218
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 178 erro: 0.10918077081441879
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 179 erro: 0.17819944024085999
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 180 erro: 0.1422644853591919
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 181 erro: 0.10620772838592529
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 182 erro: 0.1175142377614975
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 183 erro: 0.0959508866071701
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 184 erro: 0.10737334936857224
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 185 erro: 0.1394679695367813
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 186 erro: 0.12915673851966858
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 187 erro: 0.1352696716785431
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 188 erro: 0.14186473190784454
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 189 erro: 0.1600455939769745
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 190 erro: 0.19277969002723694
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 191 erro: 0.1196901798248291
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 192 erro: 0.11565166711807251
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 193 erro: 0.1254148781299591
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 194 erro: 0.11641756445169449
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 195 erro: 0.14080582559108734
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 196 erro: 0.09568671882152557
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 197 erro: 0.15134736895561218
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 198 erro: 0.10269539058208466
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
epoca 199 erro: 0.12809720635414124
No description has been provided for this image

Os modelos foram configurados com base nas necessidades de cada treinamento, por isso podemos observar diferenças em alguns parâmetros do critério e do otimizador. No entanto, busquei manter as mesmas características em relação à quantidade de camadas ocultas e outros aspectos da arquitetura.

Avaliaçao redes neurais

LSTM

In [72]:
#colocando modelo em modo de avaliaçao 
model_lstm.eval()
Out[72]:
LSTM(
  (LSTM1): LSTM(28, 300)
  (LSTM2): LSTM(300, 150)
  (LSTM3): LSTM(150, 50)
  (LSTM4): LSTM(50, 50, num_layers=2, dropout=0.3)
  (dropout): Dropout(p=0.3, inplace=False)
  (linear): Linear(in_features=50, out_features=1, bias=True)
)
In [73]:
#transformando dados de teste 
x_test_array = pipe_transf.fit_transform(x_test)
x_test_tensor = torch.Tensor(x_test_array)
y_test_tensor = torch.Tensor(y_test)
y_test_tensor = y_test_tensor.long()
x_test_tensor = x_test_tensor.unsqueeze(1)
In [74]:
x_test_tensor.shape
#o x_test tem 24 entradas, precisamos de 28 
Out[74]:
torch.Size([120, 1, 24])
In [75]:
# add criando colunas com 0 
padding = torch.zeros(120, 1, 4)  
x_test_tensor_padded = torch.cat((x_test_tensor, padding), dim=-1) 
x_test_tensor_padded.shape
Out[75]:
torch.Size([120, 1, 28])
In [76]:
#criaçao de dataloader 
test_dataset = torch.utils.data.TensorDataset(x_test_tensor_padded, y_test_tensor)
test_loader = DataLoader(test_dataset)
In [77]:
#avaliaçao LSTM
total_loss_lstm = 0 
num_batches_lstm = 0
mse = nn.MSELoss()
with torch.no_grad():
    for x, y in test_loader:
        out_lstm = model_lstm(x).squeeze()
        loss_lstm = mse(out_lstm, y)
        total_loss_lstm += loss_lstm.item() 
        num_batches_lstm += 1

mean_mse_lstm = total_loss_lstm / num_batches_lstm
print(f'media MSE: {mean_mse_lstm}')
media MSE: 0.0007733288900150607

GRU

In [78]:
#colocando GRU em modo de avaliaçao 
model_gru.eval()
Out[78]:
GRU(
  (gru1): GRU(28, 300, batch_first=True)
  (gru2): GRU(300, 150, batch_first=True)
  (gru3): GRU(150, 50, batch_first=True)
  (gru4): GRU(50, 50)
  (linear): Linear(in_features=50, out_features=1, bias=True)
  (dropout): Dropout(p=0.3, inplace=False)
  (batch_norm): BatchNorm1d(50, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
In [79]:
#avaliaçao GRU
total_loss_gru = 0
num_batches_gru = 0 
with torch.no_grad():
    for x, y in test_loader:
        out_gru = model_gru(x)
        loss_gru = mse(out_gru, y)
        num_batches_gru += loss_gru.item()
        num_batches_gru+= 1
mean_mse_gru = total_loss_gru / num_batches_gru
print(f'media MSE {mean_mse_gru}')
media MSE 0.0